This invention relates to an improvement of an envelope generator used in an electronic musical instrument or the like.
An envelope generator is employed to generate controlled waveforms which are used in the case of controlling the amplitude envelope of a tone generated in an electronic musical instrument or in the case of controlling, with time, the characteristic of a voltage-controlled type circuit such as a voltage-controlled type filter or a voltage-controlled type amplifier. In a conventional envelope generator, the amplitudes at sample points in an envelope shape are sequentially stored in an envelope memory in advance, and the addresses of the sample point amplitudes to be read out of the memory are advanced sequentially by driving a memory read-out control counter by means of a predetermined pulse signal. In this case, the addresses specified by the counter correspond to the generation times of the sample point amplitudes of the envelope shape. Therefore, if the sample point amplitudes are different in generation time even though they are equal in value, they must be stored in different addresses in the envelope memory. For instance, in the case of producing an envelope shape consisting of an attack part, a sustain part, and a decay part as shown in FIG. 1(a), the sequential sample point amplitudes of the attack part which is read out initially are stored in addresses 1 to 16, and the sequential sample point amplitudes of the decay part which is read out later are stored in addresses 17, 18, 19 and so on. Thus, even if there are the same amplitudes at the sample points in the attack part and the decay part, they are stored in different addresses. This method in which data equal in value are stored in different addresses is disadvantageous in that the efficiency in use of the memory is lowered.
Furthermore, in the case where a decay shape which, as shown in FIG. 1(b), varies in an exponential function manner is obtained by means of the conventional envelope generator, an envelope memory must be provided with addresses number (for instance twenty-one) is much larger than the number (for instance six) of amplitude variation steps. This is undoubtedly uneconomical.
In addition, in the case where an envelope shape varying exponentially with the number of addresses being equal to the number of amplitude variation steps as shown in FIG. 1(c) is obtained by the conventional envelope generator, the relationships between the amplitude values at the sample points (steps) to be stored in an envelope memory should be set up so as to be an exponential function. This is rather troublesome.
The above-described difficulties are caused by the fact that the conventional envelope generator can generate only the envelope shape which varies as stored in the envelope memory, and the memory read-out control counter is used only for sequentially reading an envelope shape just as stored in the memory.
Accordingly, it is an object of this invention to eliminate all of the above-described drawbacks accompanying a conventional envelope generator.
More specifically, an object of the invention is to provide an envelope generator, in which the contents stored in a memory are set up so that the amplitude values of an envelope shape correspond to the count values of a memory read-out control counter, and the count content of the counter is increased or decreased as desired through computation such as addition or subtraction, so as to generate an envelope shape which corresponds to the variations in count value of the counter.
Accordingly, an envelope of attack characteristic and an envelope of decay characteristic can commonly use the amplitude value of the same address in the memory respectively by increasing the count value of the counter and by decreasing the count value of the counter. For instance, in the case where the addresses in the memory are from "0" to "63", the attack part is formed by the amplitude values of 16 steps and the decay part is formed by the amplitude values of 47 steps in the conventional envelope shape generating method shown in FIG. 1(a); however, according to this invention each of the attack part and the decay part can be formed by the amplitude values of 63 steps, which leads to an improvement of the resolution degree of the envelope shape.
Another object of the invention is to provide an envelope generator in which an envelope shape varying in an expotential function manner is realized by causing a memory read-out control counter to perform exponential function computation using time as variable, so that the relationships between the amplitude values stored in the addresses in the memory are linear, and setting of the contents of the memory can be readily achieved.
A further object of the invention is to provide an envelope generator in which exponential function computations in approximation can be readily performed by combination of addition and subtraction. This can be achieved by performing a first computation in which the count value of the memory read-out control counter is subjected to subtraction (or addition) according to a clock pulse signal for every predetermined period of time, and by performing a second computation in which the count value of the aforementioned counter is subjected to addition (or subtraction) with the timing prescribed. In other words, by quickening (or delaying) stepwise the timing by which the count value of the counter is increased or decreased, the variation with time of the count value of the counter that is the difference between the computation results of the first and second computations is approximated to an exponential function in a polygonal line state.
For the above-described second computation, in addition to the memory read-out control counter, a fraction part counter is provided for carrying out a counting operation of bits less in significance than the least significant bit, or bits in fraction part, so that the data of predetermined higher significant bits in the memory read-out control counter are fed back to the fraction part counter for carrying out the counting operation, and the carry data "1" of the fraction part counter is supplied to the memory read-out control counter for carrying out the addition or subtraction. More specifically, as the amount of feedback (the amount of increase or decrease in the second computation) is varied according to the value of the predetermined higher significant bit data, the amount of increase or decrease in the second computation is changed when the count value of the counter is varied with the lapse of time. The time region where the aforementioned amount of feedback is constant is one where the count value of the counter varies linearly. The time point where the amount of feedback changes is a bend point in a polygonal line. The variation of the amount of feedback means variation of the value of the data of the predetermined higher significant bits fed back to the fraction part counter from the memory read-out control counter.
In the case where an exponential characteristic is approximated with polygonal lines, as it reaches the limit value (0) the linear region is increased, and therefore the exponential characteristic may not be sufficiently expressed in the vicinity of the limit value (0). Therefore in this invention, in a small part of the addresses in the vicinity of the limit value (0) of a memory adapted to store envelope amplitude values, the relationship between the amplitude values stored therein are preset so as to have an exponential characteristic; and the relationships between the amplitude values stored in the remaining larger part of addresses are linear as was described before. Thus, for a greater part of the envelope where the exponential characteristic can be obtained by the polygonal line approximation computation, the polygonal line approximation is employed; and for a small part in the vicinity of the limit value of the envelope where the exponential characteristic cannot be obtained by the polygonal line approximation, the exponential characteristic is simulated in an analog mode by reading the exponential characteristic shape stored, in a part of the memory. In this case, a considerably small part of the addresses is employed for storing the exponential characteristic, and the remaining part may be of linearity. Therefore, the memory can be readily set.
Accordingly, a still further object of the invention is to provide an envelope generator in which an envelope shape having exponential characteristic can be effectively generated by combination of the exponential characteristic approximation through the polygonal line computation and the analogous exponential characteristic approximation of a considerably small part of the envelope.
One example of this is shown in FIG. 10 described later. In FIG. 10, the polygonal line approximation of the exponential characteristic is carried out for regions I thorugh VII, and the exponential approximation is carried out in an analog mode by utilizing the storage data in the memory as indicated by the broken line for the last region VIII. In this last region VIII, the count value of the counter is varied (decreased) linearly as indicated by the solid line, and the envelope amplitude level read out in correspondence to the count value thus varied is varied (decreased) as indicated by the broken line.
The novel features which are considered characteristic of this invention are set forth in the appended claims. This invention itself, however, as well as other objects and advantages thereof will be best understood by reference to the following detailed description when read in conjunction with the accompanying drawings, in which like parts are designated by like numerals or characters.